package printer

import (
	"errors"
)

type PrinterManager interface {
	ListPrinters() ([]Printer, error)
	GetPrinterOptions(name string) (PrinterOptions, error)
	SubmitPrintJob(req PrintJobRequest) ([]int, error)
	GetPrintJobStatus(jobId int) (PrintJobStatus, error)
}

// dummyManager 仅用于不支持的平台
// ...实现接口但返回错误或空数据...
type dummyManager struct{}

func (d *dummyManager) ListPrinters() ([]Printer, error) {
	return nil, errors.New("unsupported platform")
}
func (d *dummyManager) GetPrinterOptions(name string) (PrinterOptions, error) {
	return PrinterOptions{}, errors.New("unsupported platform")
}
func (d *dummyManager) SubmitPrintJob(req PrintJobRequest) ([]int, error) {
	return nil, errors.New("unsupported platform")
}
func (d *dummyManager) GetPrintJobStatus(jobId int) (PrintJobStatus, error) {
	return PrintJobStatus{}, errors.New("unsupported platform")
}
